package com.koron.operation.dispatch.bean.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.koron.bean.query.PageQuery;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

@Data
public class HistoryListDto extends PageQuery {

    /**
     * 设备ID
     */
    @ApiModelProperty(value="设备ID")
    private String equipmentId;


    @ApiModelProperty(value="设备名称")
    private String equipmentName;

    /**
     * 设备管理单位ID
     */
    @ApiModelProperty(value="设备管理单位ID")
    private String deptManage;

    /**
     * 设备管理单位名称
     */
    @ApiModelProperty(value="设备管理单位名称")
    private String deptManageName;


    /**
     * 主要设备类型 数据字典（dispatch_type）:主变TRAN、线路LINE、机组UNIT
     */
    @ApiModelProperty(value="主要设备类型 数据字典（dispatch_type）:主变TRAN、线路LINE、机组UNIT")
    private String equipmentType;

    /**
     * 变更前状态 数据字典（dispatch_change_type）:1可用、2运行、3大修、4故障检修、5计划检修、6正常维护、7热备用、8冷备用
     */
    @ApiModelProperty(value="变更前状态 数据字典（dispatch_change_type）:1可用、2运行、3大修、4故障检修、5计划检修、6正常维护、7热备用、8冷备用")
    private Integer beforeStatus;

    /**
     * 变更前状态 数据字典（dispatch_change_type）:1可用、2运行、3大修、4故障检修、5计划检修、6正常维护、7热备用、8冷备用
     */
    @ApiModelProperty(value="当前状态、变更后状态 数据字典（dispatch_change_type）:1可用、2运行、3大修、4故障检修、5计划检修、6正常维护、7热备用、8冷备用")
    private Integer afterStatus;


    /**
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value="变更时间")
    private Date changeTime;

    /**
     * 变更人
     */
    @ApiModelProperty(value="变更人")
    private String changeMan;

    /**
     * 变更人名称
     */
    @ApiModelProperty(value="变更人名称")
    private String changeManName;


    @JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value="开始变更时间")
    private Date minChangeTime;


    @JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value="结束变更时间")
    private Date maxChangeTime;

    @ApiModelProperty(value="变更原因")
    private String content;

    public HistoryListDto(){

    }

    //指定设备类型
    public HistoryListDto(String equipmentType){
        this.equipmentType = equipmentType;
    }

    //指定设备类型、指定已完成的状态
    public HistoryListDto(String equipmentType, Integer beforeStatus){
        this.equipmentType = equipmentType;
        this.beforeStatus = beforeStatus;
    }
}
